﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using System.Data.Linq;
using System.Data.SqlClient;
using Website.Logger;



namespace UILGestion
{
    public partial class Master : System.Web.UI.MasterPage
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {
            //if (!IsPostBack)
            //{
                
            //          try
            //                {
            //                    loadMenu();
            //                    string a = (string)Request.QueryString["idObra"]; ;
            //                    if (a != null)
            //                        idObraLabel.Text = a;
            //                }
            //                catch (SqlException sqlex)
            //                {
            //                    WebServerSideSqlError.Log(sqlex);


            //                }
            //                catch (Exception ex)
            //                {
            //                    WebServerSideError.Log(ex);
            //                }
            //}
        }
        private void loadMenu()
        {
            dbGestionDataContext _db =
                new dbGestionDataContext(Parametros.strConnString);

            var q = from a in _db.Menus
                    where a.idAplicacion==2 // administrador de obra
                    select a;



            foreach (var item in q)
            {

                //esta condicion indica q son elementos padre.

                if (item.idInternal.Equals(item.idpadre))
                {

                    MenuItem mnuItem = new MenuItem();
                    mnuItem.Value = item.idInternal.ToString();
                    mnuItem.Text = item.descripcion;
                    mnuItem.ImageUrl = item.icono;
                    mnuItem.NavigateUrl = item.url;
                    // 'agregamos el Ítem al menú
                    //ObraAdminMenu.Items.Add(mnuItem);
                    //'hacemos un llamado al metodo recursivo encargado de generar el árbol del menú.

                    AddMenuItem(mnuItem, q);
                }


            }
        }

        private void AddMenuItem(MenuItem mnuMenuItem,
                                                 IQueryable<DAL.Menu> menuList)
        {

            foreach (var item in menuList)
            {
                if ((item.idpadre.ToString().Equals(mnuMenuItem.Value)) &&
                     (item.idInternal != item.idpadre))
                {
                    MenuItem mnuNewMenuitem = new MenuItem();


                    mnuNewMenuitem.Value = item.idInternal.ToString();
                    mnuNewMenuitem.Text = item.descripcion;
                    mnuNewMenuitem.ImageUrl = item.icono;
                    mnuNewMenuitem.NavigateUrl = item.url;
                    //'Agregamos el Nuevo MenuItem al MenuItem que viene de un nivel superior.
                    mnuMenuItem.ChildItems.Add(mnuNewMenuitem);

                    //'llamada recursiva para ver si el nuevo menú ítem aun tiene elementos hijos.
                    AddMenuItem(mnuNewMenuitem, menuList);

                }


            }



        }
       
    }
}
